package Link;

public class leet_206 {


}


/**  https://leetcode-cn.com/problems/reverse-linked-list/solution/shi-pin-jiang-jie-die-dai-he-di-gui-hen-hswxy/
 *  反转本质
 *  定义2个指针 prev 前指针  curr 后指针
 *  curr.next = prev
 *  prev = curr
 *  循环让后指针指向前指针就完成了反转 直到 curr=null 结束了遍历
 *
 *  问题一： curr.next = prev 此时你如何才能到达curr的下一个结点？
 *  此时原本的curr.next 是指向下一个节点的 但是目前是断了。
 *  所以在 进行赋值之前，先将curr.next 进行保存就可以了
 *
 *  next = curr.next
 *  curr.next = prev
 *  prev = curr
 *  curr = next
 *  此时就可以完成遍历了
 */
class Solution_206 {
    public ListNode reverseList(ListNode head) {
        // 如果链表为空
        if(head==null){
            return null;
        }

        ListNode prev = null;
        ListNode curr = head;

        while(curr!=null){
            ListNode next = curr.next;
            curr.next = prev;
            prev=curr;
            curr = next;
        }
        return prev;
    }


}


